Methods for transmitting data from a source to multiple users over a network fall into one of three categories. Unicast is a point-to-point delivery mechanism, where a source transmits a separate stream of data for each user. The volume of data transmitted increases linearly with the number of users, leading to the consumption of an unacceptably high level of resources where the number of recipients is large. The remaining two categories define point-to-multipoint or multipoint-to-multipoint delivery mechanisms. Broadcasting refers to the transmission of data to all hosts on a network. While this may work well in small networks, it requires the replication of a large number of data packets when used in a wide area network with many users. Furthermore, this method can be wasteful where the data is not of interest to a significant proportion of the recipients.
The third category is multicasting, which is the simultaneous transmission of data to a select group of users. Multicasting has particular application in fields requiring streaming of content to multiple users in real time, such as news feeds, online gaming, Digital Video Broadcasting (DVB) and videoconferencing. Overviews of this technique are given in “Multicast Networking and Application” by C. Kenneth Miller, Addison-Wesley 1988 [ISBN 0-201-30979-3] and in “Deploying IP MULTICAST in the Enterprise” by T. Maufer, Prentice Hall PTR, 1998 [ISBN 0-13-897687-2]. The use of multicasting in a cellular radio access network is discussed in “Multimedia Broadcast/Multicast Service”, 3rd Generation Partnership Project Technical Specification 3GPP™ TS 22.146 v1.0.0 2001.
FIG. 1 is a block diagram of a prior communication system 1, for multicasting information from a content provider, i.e., host 2, to a plurality of receiver hosts 3 via the Internet 4. For simplicity, the data path 5 is depicted as extending directly from the content provider 2 to a router 6 without intervening stages, such as other transmitters or routers, which may be located between these nodes. The data paths leading from the content provider 2 to the receiver hosts 3a-3c diverge at the router 6. Situations where this divergence include those where the receiver hosts 3 do not belong to the same sub-network, where the receiver hosts 3 are served by different transmitters 7 or where the radio access network is not multicast enabled.
Instead of sending a separate stream of data packets A-D for each individual receiver host 3a, 3b, the content provider 2 provides a single data stream 5. The data stream is replicated by a multicast-enabled edge router 6 wherever the paths to the different receiver hosts 3a, 3b diverge. The router 6 copies the incoming data packets A-E, producing duplicate data streams 8a, 8b for transmission to the receiver hosts 3a, 3b. As the content provider 2 transmits only a single data stream 5, the use of its system resources and the network load are reduced when compared with a unicast system. Furthermore, as the transmission of replicated data is kept to a minimum, multicasting may be used in wide area networks where broadcasting is unfeasible.
There are two types of multicasting services. In the first, a content provider has a reserved bandwidth for delivering a predetermined service to a group of end-users. The second type allows end-users to select the service provided to them. In both cases, a user can receive the multicast stream of data by submitting a request to join the group by sending a message to the content provider in a format specified by the Internet Engineering Task Force (IETF). The user can leave the multicast group by submitting a corresponding request.
Multicasting is a suitable mechanism for providing end-users with a continuous service and has limited applicability for “one-shot” transmissions. For example, a group of users may requite the delivery of a file, for example, a multimedia clip, a web page, an mp3 file, a document or a software module for an application or a game. Referring again to FIG. 1, the users of receiver hosts 3a, 3b may both request the file, which comprises data packets A-E, from the content provider 2. As the data stream 5 is received by the router 6, the data packets are copied and forwarded to a radio transmitter 7, which transmits the encapsulated data packets to receiver hosts 3a, 3b as data streams 8a, 8b over a wireless network.
There are currently no provisions for allowing a host to join an ongoing file delivery transmission, so a third host 3c, requesting a file after the start of the transmission, would be excluded. Even if the third host 3c were to join the file delivery transmission, data packets A-C would have been missed and it is probable that the user of host 3c would require the entire file. This exclusion increases the likelihood that a transmission is received by a low number of recipients, or even a single user. Any requests submitted after the delivery of the data packets A-E has commenced are accommodated by repeating the file delivery transmission, reducing the efficiency gain associated with the use of multicasting and increasing the use of the air interface bandwidth. As the use of the air interface in providing Internet type services rises, the efficient use of air interface bandwidth will become increasingly important.
Prior systems have addressed these problems by defining a schedule of forthcoming transmissions. A user can subscribe to a delivery list for a particular file, or set of files, and receive the relevant data at the next scheduled opportunity. However, this delivery mechanism does not respond directly to the user's requirements and is inflexible as, again, once the file delivery transmission has begun, any other further users requiring the same file are excluded and must subscribe to the next scheduled transmission.